Everything about In-circuit Emulator totally explained
An
in-circuit emulator (ICE) is a hardware device used to
debug the
software of an
embedded system. It is usually in the form of bond-out processor which has many internal signals brought out for the purpose of debugging.These signals tell about the state of a processor. Embedded systems present special problems for a programmer, because they usually lack keyboards, screens, disk-drives and other helpful user interfaces and storage devices that are present on business computers.
In-circuit emulation can also refer to the use of
hardware emulation, when the emulator is plugged into a system (not always embedded) in place of a yet-to-be-built chip (not always a processor). These in-circuit emulators provide a way to run the system with "live" data while still allowing relatively good debugging capabilities. It can be useful to compare this with an
in-target probe (ITP) sometimes used on enterprise servers.
Function
The basic idea of an "in-circuit emulator" is that it provides a window into the embedded system. The programmer uses the emulator to load programs into the embedded system, run them, step through them slowly, and see and change the data used by the system's software.
An "emulator" gets its name because it often "emulates" the
central processing unit of the embedded system's computer. Often, it literally has a plug that plugs into the same socket as the CPU
chip. Emulating the main computer lets it do anything that the main computer can do, but under the control of a programmer.
ICEs are always tools that attach a
terminal or
PC to the embedded system. The terminal or PC provides an interactive user interface for the programmer to investigate and control the embedded system.
Notably, when their program fails, most embedded systems simply become inert lumps of nonfunctioning electronics. Embedded systems often lack basic functions to detect signs of software failure, such as an
MMU to catch memory access errors. Without an ICE, the development of embedded systems can be extremely difficult, because there's usually no way to tell what went wrong. With an ICE, the programmer can usually test pieces of code, then isolate the fault to a particular failing piece of code, and then inspect the failing code and rewrite it to solve the problem.
In usage, an ICE provides the programmer with execution breakpoints, memory display & monitoring, and input/output control. Beyond this, the ICE can be programmed to look for any range of matching criteria to pause at, hopefully catching the failure's origin.
Some recent ICE developments (Microchip MPLAB REAL ICE) utilize resources provided on the manufactured version of the
microcontroller for emulation and debugging features, instead of needing another special emulation-version (for example, bond-out) of the target
microcontroller. Even though it's a cost-effective method, since the ICE unit only manages the emulation instead of actually emulating the target
microcontroller, trade-offs have to be made in order to keep the prices low at manufacture time, yet providing enough emulation features for the (relatively few) emulation applications.
Advantages
Virtually all embedded systems have a hardware element and a software element, which are separate but tightly interdependent. The ICE allows the software element to be run and tested on the actual hardware on which it's to run, but still allows programmer conveniences to help isolate faulty code, such as "source-level debugging" (which shows the program the way the programmer wrote it) and single-stepping (which lets the programmer run the program step-by-step to find errors).
Most ICEs consist of an adaptor unit that sits between the ICE host computer and the system to be tested. A header and cable assembly connects the adaptor to a socket where the actual
CPU or
microcontroller mounts within the embedded system. Recent ICEs enable a programmer to access the on-chip debug circuit that's integrated into the CPU via
JTAG or BDM (Background Debug Mode) in order to debug the software of an embedded system. These systems often use a standard version of the CPU chip, and can simply attach to a debug port on a production system. They are sometimes called In-circuit Debuggers or ICDs, to distinguish the fact that they don't replicate the functionality of the CPU, but instead control an already existing, standard CPU. Since the CPU doesn't have to be replaced, they can operate on production units where the CPU is soldered in and can't be replaced. An example is
Microchip Technology's ICD, which interfaces with most recent
PIC microcontrollers to debug software by attaching to the PIC's In-circuit programming/debugging port.
The ICE emulates the CPU. From the system's point of view, it has a real processor fitted, but from the programmer's point of view the system under test is under full control, allowing the developer to load, debug and test code directly.
Most host systems are ordinary commercial computers unrelated to the CPU used for development - for example, a
Windows PC might be used to develop software for a system using a
Freescale 68HC11 chip, which itself couldn't run Windows.
The programmer usually edits and compiles the embedded system's code on the host system, as well. The host system will have special compilers that produce executable code for the embedded system. These are called
cross compilers or
cross assemblers.
Manufacturers
Further Information
Get more info on 'In-circuit Emulator'.
|
External Link Exchanges
Do you know how hard it is to get a link from a large encyclopaedia? Well we're different and will prove it. To get a link from us just add the following HTML to your site on a relevant page:
<a href="http://in-circuit_emulator.totallyexplained.com">In-circuit emulator Totally Explained</a>
Then simply click through this link from your web page. Our crawlers will verify your link, extract the title of your web page and instantly add a link back to it. If you like you can remove the words Totally Explained and embed the link in article text.
As long as your link remains in place, we'll keep our link to you right here. Please play fair - our crawlers are watching. Your site must be closely related to this one's topic. Any kind of spamming, dubious practises or removing the link will result in your link from us being dropped and, potentially, your whole site being banned. |